feat(server)!: implement recursive control condition trees#115
Merged
Conversation
…9-condition-trees # Conflicts: # ui/src/core/page-components/agent-detail/modals/edit-control/edit-control-content.tsx
Codecov Report❌ Patch coverage is 📢 Thoughts on this report? Let us know! |
This was referenced Mar 12, 2026
Contributor
flowchart TD
C["condition (root)"] --> A["and"]
C --> O["or"]
C --> N["not"]
A --> L1["leaf: selector + evaluator"]
A --> L2["leaf: selector + evaluator"]
O --> L3["leaf: selector + evaluator"]
O --> A2["and"]
A2 --> L4["leaf: selector + evaluator"]
A2 --> L5["leaf: selector + evaluator"]
N --> L6["leaf: selector + evaluator"]
|
namrataghadi-galileo
requested changes
Mar 13, 2026
ui/src/core/page-components/agent-detail/modals/edit-control/control-condition.ts
Show resolved
Hide resolved
ui/src/core/page-components/agent-detail/modals/edit-control/control-condition.ts
Show resolved
Hide resolved
Contributor
|
One suggestion from Observability perspective: |
Contributor
Author
|
Following up on the broader observability note: I aligned server and SDK event emission so composite conditions use a deterministic representative leaf for top-level |
yashsheth46
approved these changes
Mar 17, 2026
namrataghadi-galileo
approved these changes
Mar 17, 2026
…9-condition-trees # Conflicts: # server/tests/test_controls_validation.py
galileo-automation
pushed a commit
that referenced
this pull request
Mar 18, 2026
## [2.0.0](ts-sdk-v1.1.0...ts-sdk-v2.0.0) (2026-03-18) ### ⚠ BREAKING CHANGES * **server:** implement recursive control condition trees (#115) ### Features * **docs:** simplify main README quick start v2 ([#100](#100)) ([7701c65](7701c65)) * **docs:** Update README.md to accurately mention Strands Agents SDK ([#105](#105)) ([84dfa57](84dfa57)) * **evaluators:** add Cisco AI Defense evaluator and examples ([#60](#60)) ([52e2416](52e2416)) * **sdk:** add Google ADK framework integration ([#83](#83)) ([f2b53ee](f2b53ee)) * **server:** implement recursive control condition trees ([#115](#115)) ([2ff4c12](2ff4c12)) ### Bug Fixes * **docs:** clarify README quickstart flow ([#119](#119)) ([317c626](317c626)) * **docs:** cleanup readme ([#66](#66)) ([eca0d6b](eca0d6b)) * **docs:** promote Google ADK plugin in README ([#99](#99)) ([f038aa4](f038aa4)) * **evaluators:** address Cisco AI Defense review issues ([#103](#103)) ([81da81b](81da81b)) * **examples:** shut down SDK in short-lived demos ([#85](#85)) ([df43264](df43264)) * **sdk:** fail closed on post-hook evaluation errors ([#114](#114)) ([67f8fc1](67f8fc1)), closes [#112](#112) * **sdk:** skip evaluation when no controls apply ([#124](#124)) ([d2cd9f9](d2cd9f9)) * **server:** escape ILIKE pattern in evaluator-configs list endpoint ([#108](#108)) ([cb6e89f](cb6e89f)) * **server:** reject empty string list evaluator values ([#121](#121)) ([2c55d27](2c55d27)) * **server:** revert unwanted changes in server config ([#117](#117)) ([d92e168](d92e168)) * **ui:** create flow - name trimming issue ([#93](#93)) ([1a9759d](1a9759d))
Collaborator
|
🎉 This PR is included in version 2.0.0 🎉 The release is available on: Your semantic-release bot 📦🚀 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
corresponding docs update: agentcontrol/docs-agent-control#28
Summary
conditiontrees across the shared models, engine, server, SDKs, and UI contractscondition_tracemetadata for composite evaluationScope
ControlDefinitionnow uses a top-levelconditiontree instead of top-levelselector/evaluatorand/or/notcomposition with a hard API depth limit of6/api/v1route structure stays the same, but the canonical contract is a breaking change for SDK consumers that construct control payloads directlycondition-tree input contractmetadata.condition_tracematched: nullon error) and preserved raw diagnostics for internal observability while API responses stay sanitizedselector+evaluator) intoconditionduring rollout9f2f5a4e6c1b_normalize_legacy_control_conditionsRisk and Rollout
alembic upgrade headTesting
make checkmake checkpassed, which covered:make models-testmake server-testmake engine-testmake sdk-testmake evaluators-testAdditional focused coverage added in this PR includes:
conditiontrees and legacy canonicalizationNotes:
sqlglot[rs]deprecation, Strands resource/deprecation warnings), but the targets passed cleanlyChecklist